diff --git a/configure.REMOVED.git-id b/configure.REMOVED.git-id
index e52b6e18ef..abf25c0324 100644
--- a/configure.REMOVED.git-id
+++ b/configure.REMOVED.git-id
@@ -1 +1 @@
-25ac5dd52e897440dac529dfcfe2034bdae89d53
\ No newline at end of file
+da368cb9ffc9b4bfa0f5e04be9f4f6089f689736
\ No newline at end of file
diff --git a/configure.ac.REMOVED.git-id b/configure.ac.REMOVED.git-id
index aabe5d878e..f4956e99d6 100644
--- a/configure.ac.REMOVED.git-id
+++ b/configure.ac.REMOVED.git-id
@@ -1 +1 @@
-3decb1ccc1162ebbe9663424f20f2ace97e2921f
\ No newline at end of file
+fbb4acce7d31b7351f3c4b42e6f718441d9408c4
\ No newline at end of file
diff --git a/external/referencesource/mscorlib/system/security/cryptography/utils.cs b/external/referencesource/mscorlib/system/security/cryptography/utils.cs
index c16e2f3432..e6481dbf18 100644
--- a/external/referencesource/mscorlib/system/security/cryptography/utils.cs
+++ b/external/referencesource/mscorlib/system/security/cryptography/utils.cs
@@ -141,10 +141,16 @@ namespace System.Security.Cryptography
static Utils()
{
}
-
+#if MONO
+ // The default provider value must remain '1' for Mono, otherwise we won't be able
+ // to locate keypairs that were serialized by Mono versions 4.0 and lower.
+ // (The ProviderType property in the CspParameters class affects serialization)
+ internal const int DefaultRsaProviderType = 1;
+#else
// Provider type to use by default for RSA operations. We want to use RSA-AES CSP
// since it enables access to SHA-2 operations. All currently supported OSes support RSA-AES.
internal const int DefaultRsaProviderType = Constants.PROV_RSA_AES;
+#endif
#if !MONO
#if FEATURE_CRYPTO || FEATURE_LEGACYNETCFCRYPTO
diff --git a/mcs/class/Mono.Posix/Test/Mono.Unix/UnixSignalTest.cs b/mcs/class/Mono.Posix/Test/Mono.Unix/UnixSignalTest.cs
index d621ad51d4..9abc27094c 100644
--- a/mcs/class/Mono.Posix/Test/Mono.Unix/UnixSignalTest.cs
+++ b/mcs/class/Mono.Posix/Test/Mono.Unix/UnixSignalTest.cs
@@ -424,6 +424,10 @@ namespace MonoTests.Mono.Unix {
foreach (Thread t in threads)
t.Join ();
AssertCountSet (usignals);
+ // signal delivery might take some time, wait a bit before closing
+ // the UnixSignal so we can ignore it and not terminate the process
+ // when a SIGHUP/SIGTERM arrives afterwards
+ Thread.Sleep (1000);
CloseSignals (usignals);
}
diff --git a/mcs/class/System.Net.Http/Makefile b/mcs/class/System.Net.Http/Makefile
index aa3cdf921e..d7c5a7e745 100644
--- a/mcs/class/System.Net.Http/Makefile
+++ b/mcs/class/System.Net.Http/Makefile
@@ -6,6 +6,9 @@ LIBRARY = System.Net.Http.dll
LIB_REFS = System.Core System
LIB_MCS_FLAGS = $(EXTRA_LIB_MCS_FLAGS)
+ifeq (monodroid,$(PROFILE))
+LIB_MCS_FLAGS += -d:XAMARIN_MODERN
+endif
TEST_MCS_FLAGS = -r:System.dll -r:System.Core.dll
diff --git a/mcs/class/System.Net.Http/System.Net.Http/HttpClient.android.cs b/mcs/class/System.Net.Http/System.Net.Http/HttpClient.android.cs
new file mode 100644
index 0000000000..f48b49cd10
--- /dev/null
+++ b/mcs/class/System.Net.Http/System.Net.Http/HttpClient.android.cs
@@ -0,0 +1,38 @@
+using System;
+using System.Reflection;
+
+namespace System.Net.Http {
+ public partial class HttpClient {
+
+ public HttpClient ()
+ : this (GetDefaultHandler (), true)
+ {
+ }
+
+ static HttpMessageHandler GetDefaultHandler ()
+ {
+ Type type = Type.GetType("Android.Runtime.AndroidEnvironment, Mono.Android");
+ if (type == null)
+ return GetFallback ("Invalid Mono.Android assembly? Cannot find Android.Runtime.AndroidEnvironment");
+
+ MethodInfo method = type.GetMethod ("GetHttpMessageHandler", BindingFlags.Static | BindingFlags.NonPublic);
+ if (method == null)
+ return GetFallback ("Your Xamarin.Android version does not support obtaining of the custom HttpClientHandler");
+
+ object ret = method.Invoke (null, null);
+ if (ret == null)
+ return GetFallback ("Xamarin.Android returned no custom HttpClientHandler");
+
+ var handler = ret as HttpMessageHandler;
+ if (handler == null)
+ return GetFallback ($"{ret?.GetType()} is not a valid HttpMessageHandler");
+ return handler;
+ }
+
+ static HttpMessageHandler GetFallback (string message)
+ {
+ Console.WriteLine (message + ". Defaulting to System.Net.Http.HttpClientHandler");
+ return new HttpClientHandler ();
+ }
+ }
+}
diff --git a/mcs/class/System.Net.Http/monodroid_System.Net.Http.dll.sources b/mcs/class/System.Net.Http/monodroid_System.Net.Http.dll.sources
new file mode 100644
index 0000000000..acaa6a3801
--- /dev/null
+++ b/mcs/class/System.Net.Http/monodroid_System.Net.Http.dll.sources
@@ -0,0 +1,2 @@
+#include System.Net.Http.dll.sources
+System.Net.Http/HttpClient.android.cs
diff --git a/mcs/class/System.Runtime.Serialization/ReferenceSources/XmlFormatWriterGenerator_static.cs b/mcs/class/System.Runtime.Serialization/ReferenceSources/XmlFormatWriterGenerator_static.cs
index fdbcc77c5b..f0b6d8d669 100644
--- a/mcs/class/System.Runtime.Serialization/ReferenceSources/XmlFormatWriterGenerator_static.cs
+++ b/mcs/class/System.Runtime.Serialization/ReferenceSources/XmlFormatWriterGenerator_static.cs
@@ -507,11 +507,15 @@ namespace System.Runtime.Serialization
} else {
var typeHandleValue = Type.GetTypeHandle (memberValue);
var isDeclaredType = typeHandleValue.Equals (CodeInterpreter.ConvertValue (memberValue, memberType, Globals.TypeOfObject));
- if (isNullableOfT)
+ if (isNullableOfT) {
ctx.InternalSerialize (writer, memberValue, isDeclaredType, writeXsiType, DataContract.GetId (memberType.TypeHandle), memberType.TypeHandle);
- else
- ctx.InternalSerializeReference (writer, memberValue, isDeclaredType, writeXsiType, DataContract.GetId (memberType.TypeHandle), memberType.TypeHandle);
- //InternalSerialize((isNullableOfT ? XmlFormatGeneratorStatics.InternalSerializeMethod : XmlFormatGeneratorStatics.InternalSerializeReferenceMethod), () => memberValue, memberType, writeXsiType);
+ } else if (memberType == Globals.TypeOfObject) {
+ var dataContract = DataContract.GetDataContract (memberValue.GetType());
+ writer.WriteAttributeQualifiedName (Globals.XsiPrefix, DictionaryGlobals.XsiTypeLocalName, DictionaryGlobals.SchemaInstanceNamespace, dataContract.Name, dataContract.Namespace);
+ ctx.InternalSerializeReference (writer, memberValue, false, false, -1, typeHandleValue);
+ } else {
+ ctx.InternalSerializeReference (writer, memberValue, isDeclaredType, writeXsiType, DataContract.GetId (memberType.TypeHandle), memberType.TypeHandle);
+ }
}
}
}
diff --git a/mcs/class/System.Runtime.Serialization/Test/System.Runtime.Serialization/DataContractSerializerTest.cs b/mcs/class/System.Runtime.Serialization/Test/System.Runtime.Serialization/DataContractSerializerTest.cs
index ada461fe2b..89c0bef1b5 100644
--- a/mcs/class/System.Runtime.Serialization/Test/System.Runtime.Serialization/DataContractSerializerTest.cs
+++ b/mcs/class/System.Runtime.Serialization/Test/System.Runtime.Serialization/DataContractSerializerTest.cs
@@ -122,5 +122,17 @@ namespace MonoTests.System.Runtime.Serialization
Assert.IsTrue (s.Contains ("All"));
}
}
+
+ // Bug #37116
+ [Test]
+ public void KeyPairOfAny ()
+ {
+ var dict = new Dictionary ();
+ dict.Add ("test", new List () { "test entry" });
+
+ var dcs = new DataContractSerializer (typeof(Dictionary));
+ dcs.WriteObject (new MemoryStream (), dict);
+ // Should not throw exception.
+ }
}
}
diff --git a/mcs/class/System/System.Security.Cryptography.X509Certificates/OSX509Certificates.cs b/mcs/class/System/System.Security.Cryptography.X509Certificates/OSX509Certificates.cs
index 184e586471..00384f4590 100644
--- a/mcs/class/System/System.Security.Cryptography.X509Certificates/OSX509Certificates.cs
+++ b/mcs/class/System/System.Security.Cryptography.X509Certificates/OSX509Certificates.cs
@@ -101,16 +101,17 @@ namespace System.Security.Cryptography.X509Certificates {
}
}
- static IntPtr GetCertificate (X509Certificate certificate, out IntPtr dataPtr)
+ static IntPtr GetCertificate (X509Certificate certificate)
{
- var handle = certificate.Handle;
+ var handle = certificate.Impl.GetNativeAppleCertificate ();
if (handle != IntPtr.Zero) {
- dataPtr = IntPtr.Zero;
CFRetain (handle);
return handle;
}
- dataPtr = MakeCFData (certificate.GetRawCertData ());
- return SecCertificateCreateWithData (IntPtr.Zero, dataPtr);
+ var dataPtr = MakeCFData (certificate.GetRawCertData ());
+ handle = SecCertificateCreateWithData (IntPtr.Zero, dataPtr);
+ CFRelease (dataPtr);
+ return handle;
}
public static SecTrustResult TrustEvaluateSsl (XX509CertificateCollection certificates, XX509CertificateCollection anchors, string host)
@@ -129,9 +130,7 @@ namespace System.Security.Cryptography.X509Certificates {
{
int certCount = certificates.Count;
int anchorCount = anchors != null ? anchors.Count : 0;
- IntPtr [] cfDataPtrs = new IntPtr [certCount];
IntPtr [] secCerts = new IntPtr [certCount];
- IntPtr [] cfDataAnchorPtrs = new IntPtr [anchorCount];
IntPtr [] secCertAnchors = new IntPtr [anchorCount];
IntPtr certArray = IntPtr.Zero;
IntPtr anchorArray = IntPtr.Zero;
@@ -142,13 +141,13 @@ namespace System.Security.Cryptography.X509Certificates {
try {
for (int i = 0; i < certCount; i++) {
- secCerts [i] = GetCertificate (certificates [i], out cfDataPtrs [i]);
+ secCerts [i] = GetCertificate (certificates [i]);
if (secCerts [i] == IntPtr.Zero)
return SecTrustResult.Deny;
}
for (int i = 0; i < anchorCount; i++) {
- secCertAnchors [i] = GetCertificate (anchors [i], out cfDataAnchorPtrs [i]);
+ secCertAnchors [i] = GetCertificate (anchors [i]);
if (secCertAnchors [i] == IntPtr.Zero)
return SecTrustResult.Deny;
}
@@ -170,14 +169,6 @@ namespace System.Security.Cryptography.X509Certificates {
code = SecTrustEvaluate (sectrust, out result);
return result;
} finally {
- for (int i = 0; i < certCount; i++)
- if (cfDataPtrs [i] != IntPtr.Zero)
- CFRelease (cfDataPtrs [i]);
-
- for (int i = 0; i < anchorCount; i++)
- if (cfDataAnchorPtrs [i] != IntPtr.Zero)
- CFRelease (cfDataAnchorPtrs [i]);
-
if (certArray != IntPtr.Zero)
CFRelease (certArray);
diff --git a/mcs/class/System/System.Security.Cryptography.X509Certificates/X509Certificate2ImplMono.cs b/mcs/class/System/System.Security.Cryptography.X509Certificates/X509Certificate2ImplMono.cs
index 87fd8a16d2..bfb2696f97 100644
--- a/mcs/class/System/System.Security.Cryptography.X509Certificates/X509Certificate2ImplMono.cs
+++ b/mcs/class/System/System.Security.Cryptography.X509Certificates/X509Certificate2ImplMono.cs
@@ -72,6 +72,11 @@ namespace System.Security.Cryptography.X509Certificates
get { return IntPtr.Zero; }
}
+ public override IntPtr GetNativeAppleCertificate ()
+ {
+ return IntPtr.Zero;
+ }
+
internal X509Certificate2ImplMono (MX.X509Certificate cert)
{
this._cert = cert;
diff --git a/mcs/class/corlib/System.Security.Cryptography.X509Certificates/X509CertificateImpl.cs b/mcs/class/corlib/System.Security.Cryptography.X509Certificates/X509CertificateImpl.cs
index 7178bedaa5..548bc5d93c 100644
--- a/mcs/class/corlib/System.Security.Cryptography.X509Certificates/X509CertificateImpl.cs
+++ b/mcs/class/corlib/System.Security.Cryptography.X509Certificates/X509CertificateImpl.cs
@@ -37,6 +37,11 @@ namespace System.Security.Cryptography.X509Certificates
get;
}
+ /*
+ * This is used in System.dll's OSX509Certificates.cs
+ */
+ public abstract IntPtr GetNativeAppleCertificate ();
+
protected void ThrowIfContextInvalid ()
{
if (!IsValid)
diff --git a/mcs/class/corlib/System.Security.Cryptography.X509Certificates/X509CertificateImplMono.cs b/mcs/class/corlib/System.Security.Cryptography.X509Certificates/X509CertificateImplMono.cs
index 056bf561ee..fa152e97f9 100644
--- a/mcs/class/corlib/System.Security.Cryptography.X509Certificates/X509CertificateImplMono.cs
+++ b/mcs/class/corlib/System.Security.Cryptography.X509Certificates/X509CertificateImplMono.cs
@@ -34,7 +34,7 @@ using MX = Mono.Security.X509;
namespace System.Security.Cryptography.X509Certificates
{
- class X509CertificateImplMono : X509CertificateImpl
+ sealed class X509CertificateImplMono : X509CertificateImpl
{
MX.X509Certificate x509;
@@ -51,6 +51,11 @@ namespace System.Security.Cryptography.X509Certificates
get { return IntPtr.Zero; }
}
+ public override IntPtr GetNativeAppleCertificate ()
+ {
+ return IntPtr.Zero;
+ }
+
public override X509CertificateImpl Clone ()
{
ThrowIfContextInvalid ();
diff --git a/mcs/class/corlib/Test/System.Security.Cryptography/CspParametersTest.cs b/mcs/class/corlib/Test/System.Security.Cryptography/CspParametersTest.cs
index 11e8177431..6cdc052f4f 100644
--- a/mcs/class/corlib/Test/System.Security.Cryptography/CspParametersTest.cs
+++ b/mcs/class/corlib/Test/System.Security.Cryptography/CspParametersTest.cs
@@ -39,7 +39,7 @@ namespace MonoTests.System.Security.Cryptography {
public void Ctor ()
{
var cp = new CspParameters ();
- Assert.AreEqual (24, cp.ProviderType);
+ Assert.AreEqual (1, cp.ProviderType);
}
}
}
diff --git a/mcs/class/lib/monolite/System.dll.REMOVED.git-id b/mcs/class/lib/monolite/System.dll.REMOVED.git-id
index 5c355f4d42..515ea3e5bb 100644
--- a/mcs/class/lib/monolite/System.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite/System.dll.REMOVED.git-id
@@ -1 +1 @@
-8e64e5a6758d73dbf3d8c6fb3eb48c076357b70d
\ No newline at end of file
+d75327e36d7b32dc9109603a62412b3e8aa159fe
\ 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 87b644f895..958cdbbba3 100644
--- a/mcs/class/lib/monolite/basic.exe.REMOVED.git-id
+++ b/mcs/class/lib/monolite/basic.exe.REMOVED.git-id
@@ -1 +1 @@
-5de7e54e585f6b49306081a2d825a268eae55a8b
\ No newline at end of file
+d59fb29c1b13df4116b62d402850b1a5280b854b
\ 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 86b5ab11f9..1da3473442 100644
--- a/mcs/class/lib/monolite/mscorlib.dll.REMOVED.git-id
+++ b/mcs/class/lib/monolite/mscorlib.dll.REMOVED.git-id
@@ -1 +1 @@
-7b90f739b90808c54955991f2ee7ade80d218166
\ No newline at end of file
+dd524703971ceb5b9e38a37927cbf400b8445a80
\ 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 d47319e724..3d5f09ad74 100644
--- a/mcs/mcs/expression.cs.REMOVED.git-id
+++ b/mcs/mcs/expression.cs.REMOVED.git-id
@@ -1 +1 @@
-bfba44fbb8c656079254fc346737ea8a4af5fd3e
\ No newline at end of file
+f649c2b1ac18409b8acd361e63e55ffa77ad5bd3
\ No newline at end of file
diff --git a/mcs/tests/dtest-064.cs b/mcs/tests/dtest-064.cs
new file mode 100644
index 0000000000..da593f6a8c
--- /dev/null
+++ b/mcs/tests/dtest-064.cs
@@ -0,0 +1,46 @@
+using System;
+
+public class A
+{
+ public A (Action action)
+ {
+ }
+}
+
+public class B : A
+{
+ public B ()
+ : base (() => {
+ dynamic d = 1;
+ Test (d);
+ })
+ {
+ }
+
+ static decimal Test (dynamic arg)
+ {
+ return 3m;
+ }
+}
+
+public class B2
+{
+ public Action a = () => {
+ dynamic d = 1;
+ Test (d);
+ };
+
+ static decimal Test (dynamic arg)
+ {
+ return 3m;
+ }
+}
+
+class M
+{
+ static void Main ()
+ {
+ new B ();
+ new B2 ();
+ }
+}
\ No newline at end of file
diff --git a/mcs/tests/ver-il-net_4_x.xml.REMOVED.git-id b/mcs/tests/ver-il-net_4_x.xml.REMOVED.git-id
index 1348c70c4c..2789a2109a 100644
--- a/mcs/tests/ver-il-net_4_x.xml.REMOVED.git-id
+++ b/mcs/tests/ver-il-net_4_x.xml.REMOVED.git-id
@@ -1 +1 @@
-de9fea39fc570d60a08eeeba6e5eef06352b9197
\ No newline at end of file
+d7429bd8b329499d480f33072157e4c6b7cde1d2
\ No newline at end of file
diff --git a/mono/metadata/method-builder.c b/mono/metadata/method-builder.c
index 23f8d59909..d9c37a8a03 100644
--- a/mono/metadata/method-builder.c
+++ b/mono/metadata/method-builder.c
@@ -96,6 +96,12 @@ void
mono_mb_free (MonoMethodBuilder *mb)
{
#ifndef DISABLE_JIT
+ GList *l;
+
+ for (l = mb->locals_list; l; l = l->next) {
+ /* Allocated in mono_mb_add_local () */
+ g_free (l->data);
+ }
g_list_free (mb->locals_list);
if (!mb->dynamic) {
g_free (mb->method);
@@ -148,7 +154,7 @@ mono_mb_create_method (MonoMethodBuilder *mb, MonoMethodSignature *signature, in
header->code = mb->code;
for (i = 0, l = mb->locals_list; l; l = l->next, i++) {
- header->locals [i] = mono_metadata_type_dup (NULL, (MonoType*)l->data);
+ header->locals [i] = (MonoType*)l->data;
}
} else
#endif
@@ -172,11 +178,15 @@ mono_mb_create_method (MonoMethodBuilder *mb, MonoMethodSignature *signature, in
memcpy ((char*)header->code, mb->code, mb->pos);
for (i = 0, l = mb->locals_list; l; l = l->next, i++) {
- header->locals [i] = mono_metadata_type_dup (NULL, (MonoType*)l->data);
+ header->locals [i] = (MonoType*)l->data;
}
#endif
}
+ /* Free the locals list so mono_mb_free () doesn't free the types twice */
+ g_list_free (mb->locals_list);
+ mb->locals_list = NULL;
+
method->signature = signature;
if (!signature->hasthis)
method->flags |= METHOD_ATTRIBUTE_STATIC;
@@ -268,12 +278,19 @@ int
mono_mb_add_local (MonoMethodBuilder *mb, MonoType *type)
{
int res;
+ MonoType *t;
+
+ /*
+ * Have to make a copy early since type might be sig->ret,
+ * which is transient, see mono_metadata_signature_dup_internal_with_padding ().
+ */
+ t = mono_metadata_type_dup (NULL, type);
g_assert (mb != NULL);
g_assert (type != NULL);
res = mb->locals;
- mb->locals_list = g_list_append (mb->locals_list, type);
+ mb->locals_list = g_list_append (mb->locals_list, t);
mb->locals++;
return res;
diff --git a/mono/mini/Makefile.am b/mono/mini/Makefile.am
index 304498c38d..3c3f1a5ba4 100644
--- a/mono/mini/Makefile.am
+++ b/mono/mini/Makefile.am
@@ -801,7 +801,7 @@ EXTRA_DIST = TestDriver.cs \
Makefile.am.in
version.h: Makefile
- echo "#define FULL_VERSION \"Stable 4.4.0.122/a3fabf1\"" > version.h
+ echo "#define FULL_VERSION \"Stable 4.4.0.142/81f38a9\"" > 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 304498c38d..3c3f1a5ba4 100755
--- a/mono/mini/Makefile.am.in
+++ b/mono/mini/Makefile.am.in
@@ -801,7 +801,7 @@ EXTRA_DIST = TestDriver.cs \
Makefile.am.in
version.h: Makefile
- echo "#define FULL_VERSION \"Stable 4.4.0.122/a3fabf1\"" > version.h
+ echo "#define FULL_VERSION \"Stable 4.4.0.142/81f38a9\"" > 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 52846c50e4..0ba2700ff0 100644
--- a/mono/mini/Makefile.in.REMOVED.git-id
+++ b/mono/mini/Makefile.in.REMOVED.git-id
@@ -1 +1 @@
-c30141f67c9a2e03366c40284ff6f85c7ec12f08
\ No newline at end of file
+fe183791db460a9dd05074980db60cfb70ea20c4
\ No newline at end of file
diff --git a/mono/mini/branch-opts.c b/mono/mini/branch-opts.c
index aeb11a0ff0..8df4dcb3f2 100644
--- a/mono/mini/branch-opts.c
+++ b/mono/mini/branch-opts.c
@@ -248,7 +248,8 @@ mono_replace_ins (MonoCompile *cfg, MonoBasicBlock *bb, MonoInst *ins, MonoInst
bb->has_array_access |= first_bb->has_array_access;
/* Delete the links between the original bb and its successors */
- tmp_bblocks = bb->out_bb;
+ tmp_bblocks = mono_mempool_alloc0 (cfg->mempool, sizeof (MonoBasicBlock*) * bb->out_count);
+ memcpy (tmp_bblocks, bb->out_bb, sizeof (MonoBasicBlock*) * bb->out_count);
count = bb->out_count;
for (i = 0; i < count; ++i)
mono_unlink_bblock (cfg, bb, tmp_bblocks [i]);
diff --git a/mono/mini/genmdesc.c b/mono/mini/genmdesc.c
index b996f8f83b..2d4f8b4af3 100644
--- a/mono/mini/genmdesc.c
+++ b/mono/mini/genmdesc.c
@@ -195,6 +195,7 @@ load_file (const char *name) {
if (is_template && !desc->name)
g_error ("Template without name at line %d in %s\n", line, name);
}
+ g_string_free (comment,TRUE);
fclose (f);
return 0;
}
diff --git a/mono/mini/mini-exceptions.c b/mono/mini/mini-exceptions.c
index faa0672d26..8c1392bc2e 100644
--- a/mono/mini/mini-exceptions.c
+++ b/mono/mini/mini-exceptions.c
@@ -1163,7 +1163,7 @@ mini_jit_info_table_find_ext (MonoDomain *domain, char *addr, gboolean allow_tra
MonoJitInfo*
mini_jit_info_table_find (MonoDomain *domain, char *addr, MonoDomain **out_domain)
{
- return mini_jit_info_table_find_ext (domain, addr, TRUE, out_domain);
+ return mini_jit_info_table_find_ext (domain, addr, FALSE, out_domain);
}
/*
diff --git a/mono/mini/version.h b/mono/mini/version.h
index f2c677337c..189f55a84a 100644
--- a/mono/mini/version.h
+++ b/mono/mini/version.h
@@ -1 +1 @@
-#define FULL_VERSION "Stable 4.4.0.122/a3fabf1"
+#define FULL_VERSION "Stable 4.4.0.142/81f38a9"
diff --git a/mono/sgen/sgen-archdep.h b/mono/sgen/sgen-archdep.h
index 5e349f8416..ac4280b788 100644
--- a/mono/sgen/sgen-archdep.h
+++ b/mono/sgen/sgen-archdep.h
@@ -89,7 +89,7 @@
/* MS_BLOCK_SIZE must be a multiple of the system pagesize, which for some
architectures is 64k. */
-#if defined(TARGET_POWERPC64)
+#if defined(TARGET_POWERPC) || defined(TARGET_POWERPC64)
#define ARCH_MIN_MS_BLOCK_SIZE (64*1024)
#define ARCH_MIN_MS_BLOCK_SIZE_SHIFT 16
#endif
diff --git a/mono/sgen/sgen-gchandles.c b/mono/sgen/sgen-gchandles.c
index f4b352eac1..b38b0ac719 100644
--- a/mono/sgen/sgen-gchandles.c
+++ b/mono/sgen/sgen-gchandles.c
@@ -614,7 +614,7 @@ null_link_if (gpointer hidden, GCHandleType handle_type, int max_generation, gpo
return hidden;
if (closure->predicate (obj, closure->data))
- return NULL;
+ return MONO_GC_HANDLE_METADATA_POINTER (sgen_client_default_metadata (), GC_HANDLE_TYPE_IS_WEAK (handle_type));
return hidden;
}
diff --git a/po/mcs/de.gmo b/po/mcs/de.gmo
index b36d5ea81d..7af04ecae8 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 61496d3d31..7b94a621cb 100644
--- a/po/mcs/de.po.REMOVED.git-id
+++ b/po/mcs/de.po.REMOVED.git-id
@@ -1 +1 @@
-8b20cd235026fc1693543bc49585e0f3f6f4609c
\ No newline at end of file
+4afeb56d03f2ff0ee686d07c1095753b1b597b6a
\ No newline at end of file
diff --git a/po/mcs/es.gmo b/po/mcs/es.gmo
index 830d649fad..d43ab7decb 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 a13d4e5a97..7e9464c681 100644
--- a/po/mcs/es.po.REMOVED.git-id
+++ b/po/mcs/es.po.REMOVED.git-id
@@ -1 +1 @@
-9fdcb2cb2e205a2aa410ded94a2f7c1d10aeaa57
\ No newline at end of file
+3e9cb2919279391d05fc709a3a605e5b3345c4cd
\ No newline at end of file
diff --git a/po/mcs/ja.gmo b/po/mcs/ja.gmo
index f3d1164b12..c1862c98bc 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 1b52ad51f9..c72d1d86aa 100644
--- a/po/mcs/ja.po.REMOVED.git-id
+++ b/po/mcs/ja.po.REMOVED.git-id
@@ -1 +1 @@
-ed5117bf4b8ffa445f8a891a2e99925990c94717
\ No newline at end of file
+e805c0c6637c940bbad481235085f5803f523af3
\ No newline at end of file
diff --git a/po/mcs/mcs.pot b/po/mcs/mcs.pot
index c78c5d9029..35f2a4520c 100644
--- a/po/mcs/mcs.pot
+++ b/po/mcs/mcs.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: mono 4.4.0\n"
"Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n"
-"POT-Creation-Date: 2016-04-12 12:26-0400\n"
+"POT-Creation-Date: 2016-04-28 08:23-0400\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 f306551e80..a5fda5af40 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 fb5fc86da5..e971a85e0e 100644
--- a/po/mcs/pt_BR.po.REMOVED.git-id
+++ b/po/mcs/pt_BR.po.REMOVED.git-id
@@ -1 +1 @@
-657c1675c390dbc3387b5670d3c9b168b2941302
\ No newline at end of file
+b570606f4dc4d196eaca6f4988a275ebafa669fe
\ No newline at end of file